Graphics processing units (GPUs) were traditionally limited to performing only graphics related processing in fixed-function pipelines that provided very limited functional flexibility. Newer GPUs include programmable cores that execute programs, and thereby provide greater functional flexibility as compared to the traditional GPUs. The programmable cores may execute both graphics applications and non-graphics applications, permitting so-called general purpose GPU (GPGPU) applications.